-----------------------------------------------------------------------------
                                UTelAdSE Manual
                               Version 100 Beta 3
                        by Michiel 'El Muerte' Hendriks
                           elmuerte@drunksnipers.com
-----------------------------------------------------------------------------
Use a normal telnet client to connect to the correct port (the Listen port 
you configured above). You will be prompted for a username and password, you
can use the same username and password as you can with the WebAdmin. You need
to have Console privileges (if you use the advanced access controll).
After you login on the server you will see the command prompt:

    <username>@<server ip># 

From this point you can enter commands to be executed on the server. 
Depending on the prefix a command will be executed:

| Prefix | Result
|    /   | This will execute a builtin command (if it exists)
|    .   | This will execute the console command: say
|  none  | This will execute a console command in the context of the game,
|        | not all commands will work in this console, for example the 
|        | `admin ...` commands do not work, for this I've build some extra
|        | builtins. `set` and `get` do work.

There can also be hotkeys to trigger builtin functions, hotkeys are entered 
using: Ctrl+<key> or Meta+<key>
The <key> is case sensitive (most commands of UTelAdSE are case sensitive).
The `Meta` key is often ESC or Alt, depeing on what your client supports,
most clients support the ESC+<key> (first press ESC then the <key>)

Pressing the UP or DOWN arrow will allow you to scroll through the command 
history of the last 10 commands you tried to execute.
You can use the TAB key to complete the builtin command you were entering,
for example, you type `/sta[TAB]` with will result into `/status`

Below is a description of all builtins provided by this package.
Most builtin take parameters, I use the following format to dislay these
parameters:

  /command <required|or this> [optional] values values ...

Parameters between <> are required
Parameters between [] are optional
<one|two> means that you can either use the parameters "one" or "two"
"values ..." means that more of these values can be entered

------------------------------ Default Builtins -----------------------------
These builtins are some basic builtins, you are advised to always load these 
builtins.

/logout or Ctrl+D
  This will log you out of the system

/togglechat or Ctrl+C
  This will toggle the chat mode, when chat mode is True you will receive the
  message people type on your server. When chat mode is false you won't 
  receive any messages

/status or Ctrl+S
  This will display some server information (map, gametype, players, ...)

/players or Ctrl+P
  This will display some information about the players on the server

----------------------- Admin User & Group management -----------------------
In order to use these builtin commands you need to use the AccessControlIni
security system. These builtins are written to manage the Admin users and 
admin groups on the system.

/privileges [-token|mask]
  This will display the available privileges, when you specify a "-token"
  parameter only the privileges whose token starts with "token" will be 
  displayed. example:
    /privileges -T
    this will display only the Telnet privileges
  When you specify a "mask" only the privileges matching *mask* will be 
  displayed. example:
    /privileges kick
    This will display all privileges that have something to do with kicking

/user <list|show|add|remove|set|loggedin>
  `list`
    This will display all admin users on the system (that you can controll)
  `show <username>`
    This will display the details on the admin user `username`
  `add <username> <password> <group> [privileges]`
    This will create a user `username` with password `password`, in group
    `group` and with optional privileges `privileges`
    The value of `privileges` is how the privileges are stored in the 
    XAdmin.ini, using a list of privilege tokens, for example:
      T|Mr|Ms|Mc
  `remove <username>`
    This will remove the user <username>
  `set <username> [-pass <password>] [-addgroup <group>] [-delgroup <group>] 
    [-addmgroup <group>] [-delmgroup <group>] [-privs <privileges>]`
    This will set some properties for this user.
    `-pass <password`     will set the new password
    `-addgroup <group>`   will add the user to this group
    `-delgroup <group>`   will remove this user from this group
    `-addmgroup <group>`  will add this user as manager of that group
    `-delmgroup <group>`  will remove this user as manager of that group
    `-privs <privileges>` will set the privileges of this user
  `loggedin`
    This will display the currently logged in users (can you can consol)

/group <list|show|add|remove|set>
  `list`
    This will display all admin groups on the system (that you can controll)
  `show <group>`
    This will display the details on the admin group `group`
  `add <name> <security level> [privileges]`
    This will add a group with name `name` with security level `security 
    level` and optional the privileges
  `remove <name>`
    This will remove the group with name `name`
  `set <groupname> [-level <security level>] [-privs <privileges>]`
    This will set some parameters for a group

---------------------------- Server configuration ---------------------------
These commands can be used to change some settings on the server.

/map <restart|next|URL>
  This will change the map, when you use `restart` it will restart the 
  current map. When you used `next` it will load the next map up for rotation
  URL is a level URL as you can use when you start your server with UCC, for
  example:
    /map dm-trainingday?gametype=xgame.deathmatch?mutator=xgame.instagib

/mutator <list> | <show> mutator | <add|del> mutator ...
  `list` will display all available mutators on the server
  `show mutator` will display some information about that mutator
  `<add|del> mutator ...` will add or remove the mutators to/from the game
    you have to restart the map, or load the next map for these changes to
    take effect. The value `mutator` must be the full class name as returned 
    by list. You could also use only the class name or human readable name
    but this can result in the loading of the wrong mutator.

/kick <list> | [ban|session] [-force] <names|ids> ...
  `list` will display all players on the server (including spectators and 
  bots)
  `<names|ids>` these players will be kicked/banned from the server, names 
    can be a mask like: `Clan*` or `*Clan` or `*Clan*`
    ids are returned by the `list` command, be carefull with id 0, this can
    also kick some spectators you don't want to.
    To ban a player for ever from the server you must specify `ban` as the 
    first argument, example:
      /kick ban El_Muerte
    When you use `session` instead of `ban` the user will only be kicked for
    this match.
    In order to kick/ban a user logged in as Admin you can use the `-force`
    argument, this will first log them out as admin and then kick/ban them
    Becausefull with `-force` this won't kick users of UTelAdSE of WebAdmin, 
    it will only break them.

/bots <add|kill|set>
  `add <number|names ...>`
    This will add <number> bots, or bot whose name matches one of the `names`
    masks
  `kill <number|names ...>`
    This will remove bots from the server
  `set <number>
    This will set the minplayer value to <number>

/maplist <used|list> [-gametype] | <add|del> [-gametype] mapname ... 
  | <move> [-gametype] from to

  Use `-gametype` (as second argument) to edit/view the maplist of that 
  gametype, `gametype` can be the gametype acronym (DM, CTF, DOM2, ...) or 
  the class name as you would use on the command line.
  `used` will display the map list in rotation
  `list` will display all maps available for that gametype
  `<add|dell> mapname ...` will add/remove the maps matching the mapname mask
    The mask can be "*map", "map*" or "*map*"
  `move <from> <to>` This will move the map from location <from> to location
    <to>

/gametype <list>
  `list` This will display all gametypes available on the server

-----------------------------------------------------------------------------
Michiel 'El Muerte' Hendriks                        elmuerte@drunksnipers.com
The Drunk Snipsers - ICT Solutions                http://www.drunksnipers.com
-----------------------------------------------------------------------------